其他
Redis 10亿数据量只需要100MB内存,为什么这么牛?
1,《往期精选优秀博文都在这里了!》 2、呕心沥血总结的14张思维导图,教你构建 Python核心知识体系(附高清下载) 3、一份来自亚马逊技术专家的Google面试指南,GitHub收获9.8万星,已翻译成中文 4、支付宝系统架构(内部架构图)
5、牛逼!IDEA 2020 要本土化,真的是全中文了!中国开发者话语权越来越大了
本文redis试验代码基于如下环境:
SETBIT
setbit命令用于写入位数组指定偏移量的二进制位设置值,偏移量从0开始计数,且只允许写入1或者0,如果写入非0和1的值则写入失败:
GETBIT
gitbit命令用于获取位数组指定偏移量上的二进制值:
BITCOUNT
时间复杂度为O(1) 杜绝缓冲区溢出 减少修改字符串长度时候所需的内存重分配次数 二进制安全的API操作 兼容部分C字符串函数
redis中的位数组采用的是String字符串数据格式来存储,而字符串对象使用的正是上文说的SDS简单动态字符串数据结构。
大家都知道的是一个字节用的是8个二进制位来存储的,也就是8个0或者1,即一个字节可以存储十进制0~127的数字,也即包含了所有的数字、英文大小写字母以及标点符号。
存储空间计算
需要注意的是,如果你的数据量不大,那就不要把起始偏移量搞的很大,这样也是占空间的,比如我们只需要存储几百条数据,但是其中的偏移量却很大,这就会造成了很大的内存空间浪费。
应用场景
来源:toutiao.com/i6767642839267410445
另:公众号后台回复【2T】有惊喜礼包!
来源:toutiao.com/i6767642839267410445
另:公众号后台回复【2T】有惊喜礼包!
1.不认命,从10年流水线工人,到谷歌上班的程序媛,一位湖南妹子的励志故事
4.“37岁,985毕业,年薪50万,被裁掉只用了10分钟”
5.37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...